package com.xiexiaozhou.helper.core.service.impl;

import com.xiexiaozhou.helper.core.domain.Manager;
import com.xiexiaozhou.helper.core.repository.ManagerRepository;
import com.xiexiaozhou.helper.core.service.ManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

/**
 * 管理员
 */
@Service
public class ManagerServiceImpl implements ManagerService {

    @Autowired
    private ManagerRepository managerRepository;

    /**
     * 添加管理员
     *
     * @param manager
     * @return
     */
    @Override
    public Manager register(Manager manager) {
        return managerRepository.save(manager);
    }

    /**
     * 管理员登录
     *
     * @param username
     * @param password
     * @return
     */
    @Override
    public Manager login(String username, String password) {
        return managerRepository.findByUsernameAndPassword(username, password);
    }

    /**
     * 通过id获取管理员信息
     *
     * @param managerId
     * @return
     */
    @Override
    public Manager get(Long managerId) {
        return managerRepository.findOne(managerId);
    }

    /**
     * 修改密码
     *
     * @param managerId
     * @param newPwd
     * @return
     */
    @Override
    public Manager modifyPwd(Long managerId, String newPwd) {
        //通过管理员id获取管理员
        Manager manager = managerRepository.findOne(managerId);

        //修改密码
        manager.setPassword(newPwd);

        //更新管理员
        return managerRepository.save(manager);
    }

    /**
     * 管理员列表（分页）
     *
     * @param pageable
     * @return
     */
    @Override
    public Page<Manager> list(Pageable pageable) {
        return managerRepository.findAll(pageable);
    }
}
